package com.wjm.JavaSEAPI.APIstring;

/**
 * Data:2022年07月03日
 * Author:wjm
 * Content:  StringBuilder介绍
 *
 * StringBuilder作用
 *           StringBuilder其实就是对String缺点的优化，本质是一个修改字符串的API,在程序中我们不断的更改String类型的字符串其实都是在new一个新的对象的过程
 *       而StringBuilder就是因为字符串不可变的特性而出现的，他对字符串的更改是对一个对象的更改，不会再去new新的对象。
 * StringBuilder优点
 *           减小了内存的开销，避免了频繁的new对象，并且提升了代码运行效率
 */
public class StringBuildDemo {
    public static void main(String[] args) {

        //运行慢，并且极端情况下会出现内存不足而报错：java.lang.OutOfMemoryError:Java head space
//        String str = "123";
//        for (int i = 0;i<1000000000;i++){
//            str = str + "123";
//        }

        //运行速度快
        StringBuilder builder = new StringBuilder("123");
        for (int i = 0;i<1000000000;i++){
            builder.append("123");
        }
    }
}
